# coding:utf8
import pytest
import requests
from utils.log_utils import setup_logger

import pytest
import pymysql
from utils.log_utils import setup_logger
from utils.data_reader import read_yaml_data

# 定义全局的日志记录器
# @pytest.fixture(scope="session")
# def logger():
#     return setup_logger("api_test_log", "api_test.log")
#
# # 定义基础的API URL，可根据实际情况调整
# @pytest.fixture(scope="session")
# def base_url():
#     return "https://api.example.com"
#
# # 示例的用户ID，可根据实际情况调整或者参数化
# @pytest.fixture(scope="function")
# def user_id():
#     return 123



logger = setup_logger()
config = read_yaml_data("config.yaml")


@pytest.fixture(scope="session")
def database_connection():
    """
    创建数据库连接的夹具函数，整个测试会话只创建一次连接
    :return: 数据库连接对象
    """
    try:
        conn = pymysql.connect(
            host=config['database']['host'],#连接数据库ip地址
            port=config['database']['port'],#数据库端口号
            user=config['database']['user'],#用户名
            password=config['database']['password'],#密码
            database=config['database']['database_name']#连接到的具体数据库名称
        )
        logger.info("成功建立数据库连接")
        yield conn
        conn.close()
        logger.info("关闭数据库连接")
    except pymysql.MySQLError as e:
        logger.error(f"数据库连接出错: {e}")
        pytest.fail("无法建立数据库连接，测试终止")
